#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=2e5+3;
int m,n,k,t,a[N];
vector<pair<int ,int >>sum[N];
bool check(int mid) {
int ans=0,now=0;
for(int i=1;i<=n;i++) {
for(auto [x,y]: sum[i])
if(y>a[mid]) now=max(now,x);
if(i<=now) ans+=2;
}
if(ans+n+1<=t) return 1;
else return 0;
}
void solve() {
cin>>m>>n>>k>>t;
for(int i=1; i<=m; i++) cin>>a[i];
for(int i=1; i<=k; i++) {
int l,r,x;
cin>>l>>r>>x;
sum[l].push_back({r,x});
}
sort(a+1,a+m+1,greater<int>());
a[0]=1e9;
int l=0,r=m;
while(l<r) {
int mid=(l+r+1)/2;
if(check(mid)) l=mid;
else r=mid-1;
}
cout<<l<<endl;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
// int t; cin>>t; while(t--)
solve();
return 0;
}
1555A - PizzaForces | 1607B - Odd Grasshopper |
1084A - The Fair Nut and Elevator | 1440B - Sum of Medians |
1032A - Kitchen Utensils | 1501B - Napoleon Cake |
1584B - Coloring Rectangles | 1562B - Scenes From a Memory |
1521A - Nastia and Nearly Good Numbers | 208. Implement Trie |
1605B - Reverse Sort | 1607C - Minimum Extraction |
1604B - XOR Specia-LIS-t | 1606B - Update Files |
1598B - Groups | 1602B - Divine Array |
1594B - Special Numbers | 1614A - Divan and a Store |
2085. Count Common Words With One Occurrence | 2089. Find Target Indices After Sorting Array |
2090. K Radius Subarray Averages | 2091. Removing Minimum and Maximum From Array |
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |
1268. Search Suggestions System | 841. Keys and Rooms |